Computer graphics systems are widely used in many industries, including computer-aided design (CAD) and in the creation of animated motion pictures.
In computer graphics, computer-aided geometric design and the like, an artist, draftsman or other user (generally referred to herein as an “operator”) attempts to generate a three-dimensional representation of objects in a scene, as maintained by a computer, and in some cases thereafter render respective two-dimensional images of the objects in the scene from one or more orientations. In the first, representation generation phase, conventionally, computer graphics systems generate a three-dimensional representation from, for example, various two-dimensional line drawings comprising contours and/or cross-sections of the objects in the scene and by applying a number of operations to such lines that will result in two-dimensional surfaces in three-dimensional space, and subsequent modification of parameters and control points of such surfaces to correct or otherwise modify the shape of the resulting representation of the object.
During this process, the operator also defines various properties of the surfaces of the objects, the structure and characteristics of light sources which illuminate the scene, and the structure and characteristics of one or more simulated cameras which generate the images. After the structure and characteristics of the scene, light source(s) and camera(s) have been defined, in the second phase, an operator enables the computer to render an image of the scene from a particular viewing direction.
Programmable computer graphics hardware devices and systems have created the need for higher quality images than what the traditional graphic rendering pipeline can provide. One important visual feature when rendering an image is transparency. For ray-tracing, this is a common feature. At each intersection, a new ray is cast and will return the information from the hit point back to the current shader.
By way of example, the MetaSL language from MENTAL IMAGES GMBH of Berlin, Germany (see above-referenced patent applications and Mill 2006, incorporated herein by reference), which abstracts software and hardware shading, offers methods to trace rays and retrieve hit information at any position in the shader. The flexibility and the power of the MetaSL language enable functions beyond the simple blending operations that can be done between two rendered layers. In the MENTAL MILL computer software code product commercially available from MENTAL IMAGES GMBH of Berlin, Germany, shaders can be automatically generated in the MetaSL language, and can be easily modified by the user. Among other aspects, the MENTAL MILL system enables users to develop, test and maintain shaders and complex shader graphs for hardware and software rendering, through a graphical user interface (GUI) with real-time visual feedback. MENTAL MILL also enables the creation of complex, cooperating shader networks for generating photorealistic computer graphics effects, and complex, cooperating shader graphs can be encapsulated together into “MENTAL IMAGES Phenomena.”
Prior to the advent of the present invention, different conventional methods existed to attempt to achieve transparency in computer graphics hardware rendering. Each conventional technique offers degrees of advantages and disadvantages with different speed and quality. Unfortunately, none of the conventional techniques correctly handles transparent or translucent materials.
It is therefore desirable to provide new methods, systems, arrangements, and computer software program code products operable to correctly handle the computer graphics rendering of transparent or translucent materials.